package com.example.smartagrisys.dto;

import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 土地作物记录DTO
 */
@Data
public class LandCropRecordDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    private Long id;

    /**
     * 土地ID
     */
    @NotNull(message = "土地ID不能为空")
    private Long landId;

    /**
     * 作物名称
     */
    @NotBlank(message = "作物名称不能为空")
    private String cropName;

    /**
     * 作物品种
     */
    private String cropVariety;

    /**
     * 种植面积(亩)
     */
    @NotNull(message = "种植面积不能为空")
    @DecimalMin(value = "0.01", message = "种植面积必须大于0")
    private BigDecimal plantingArea;

    /**
     * 种植日期
     */
    @NotNull(message = "种植日期不能为空")
    private LocalDateTime plantingDate;

    /**
     * 预计收获/收获日期
     */
    private LocalDateTime harvestDate;

    /**
     * 预计产量(斤)
     */
    private BigDecimal expectedYield;

    /**
     * 实际产量(斤)
     */
    private BigDecimal actualYield;

    /**
     * 状态(0:种植中, 1:已收获, 2:已作废)
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;
} 